Error correcting codes encode data redundantly to compensate for data errors in noisy communication channels. As data storage densities and transmission rates increase, the effects of error-causing disturbances may become more pronounced, leading to increased error rates. Low density parity check (LDPC) codes offer error correction performance close to a theoretical maximum.
Soft-decision LDPC code decoders achieve high error correction performance by operating on “soft,” or probabilistic data, unlike hard-decision LDPC code decoders, which operate on “hard,” non-probabilistic data. For example, to correct errors in binary data, a hard-decision decoder may receive only the binary data values, but a soft-decision decoder may receive the binary data values plus additional information indicating the reliability of each binary value (e.g., estimated likelihoods that the data values are correct). However, although a soft-decision decoder may offer higher error correction performance than a hard-decision decoder, the soft-decision decoder may be significantly more computationally complex than the hard-decision decoder, and may also be slower.